package com.yida.gwj.deposit.domain.request;

import com.yida.gwj.deposit.domain.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * 业务（缴存业务管理模块）对象
 *
 * @author wws
 * @date 2023-02-14
 */
@ApiModel("业主缴存保存参数")
public class GwjOwnerDepositSaveSubmitRequest implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 业务相关参数
	 */
	@Valid
	@NotNull(message = "案例信息不能为空")
	@ApiModelProperty(value = "业务参数")
	private GwjDepositBusinessRequest business;

	/**
	 * 业务小区信息
	 */
	@Valid
	@NotNull(message = "小区信息不能为空")
	@ApiModelProperty(value = "业务小区参数")
	private GwjDepositBusinessCommunityRequest businessCommunity;

	/**
	 * 业务楼栋信息
	 */
	@Valid
	@NotNull(message = "楼栋信息不能为空")
	@ApiModelProperty(value = "业务楼栋参数")
	private List<GwjDepositBusinessBuildRequest> businessBuilds;

	/**
	 * 房屋信息不能为空
	 */
	@Valid
	@NotNull(message = "房屋信息不能为空")
	@ApiModelProperty(value = "业务房屋参数")
	private List<GwjDepositBusinessHouseRequest> businessHouses;

	/**
	 * 维修资金分户业务金额
	 */
	@Valid
	@NotNull(message = "业务金额不能为空")
	@ApiModelProperty("业务金额参数")
	private GwjDepositBusinessMoneyRequest businessMoney;


	/**
	 * 缴存明细
	 */
	@Valid
	@ApiModelProperty("缴存明细")
	private List<GwjDepositBusinessDetailRequest> details;

	/**
	 * 业务日志参数
	 */
	@ApiModelProperty("日志参数")
	private GwjDepositBusinessLogRequest businessLog;

	/**
	 * 分组校验
	 */
	public @interface FundsSplit {
	}

	public GwjDepositBusinessRequest getBusiness() {
		return business;
	}

	public void setBusiness(GwjDepositBusinessRequest business) {
		this.business = business;
	}

	public GwjDepositBusinessCommunityRequest getBusinessCommunity() {
		return businessCommunity;
	}

	public void setBusinessCommunity(GwjDepositBusinessCommunityRequest businessCommunity) {
		this.businessCommunity = businessCommunity;
	}

	public List<GwjDepositBusinessBuildRequest> getBusinessBuilds() {
		return businessBuilds;
	}

	public void setBusinessBuilds(List<GwjDepositBusinessBuildRequest> businessBuilds) {
		this.businessBuilds = businessBuilds;
	}

	public List<GwjDepositBusinessHouseRequest> getBusinessHouses() {
		return businessHouses;
	}

	public void setBusinessHouses(List<GwjDepositBusinessHouseRequest> businessHouses) {
		this.businessHouses = businessHouses;
	}

	public GwjDepositBusinessMoneyRequest getBusinessMoney() {
		return businessMoney;
	}

	public void setBusinessMoney(GwjDepositBusinessMoneyRequest businessMoney) {
		this.businessMoney = businessMoney;
	}

	public List<GwjDepositBusinessDetailRequest> getDetails() {
		return details;
	}

	public void setDetails(List<GwjDepositBusinessDetailRequest> details) {
		this.details = details;
	}

	public GwjDepositBusinessLogRequest getBusinessLog() {
		return businessLog;
	}

	public void setBusinessLog(GwjDepositBusinessLogRequest businessLog) {
		this.businessLog = businessLog;
	}
}
